This invention relates to production testing of integrated electronic circuits, and particularly to testing of analog-to-digital converter (xe2x80x9cADCxe2x80x9d) circuits as they are produced to determine their functional specifications.
ADCs are characterized by functional specifications., such as integral nonlinearity (xe2x80x9cINLxe2x80x9d) and differential nonlinearity (xe2x80x9cDNLxe2x80x9d). To determine whether a given ADC that has been manufactured meets the required specifications, it must be tested. Conventional testing of ADCs as they are produced involves direct measurement of their functional specifications. However, as ADCs continue to improve in resolution, direct measurement has become more time time consuming and expensive. The measurement of INL and DNL, that is, linearity testing, constitutes the major portion of the ADC test time (35-50%) and, therefore, the major portion of the test cost for ADCs.
The measurement of INL and DNL involves the measurement of all the code transitions voltages (xe2x80x9cCTsxe2x80x9d) (the voltage input at which the output code of an ADC changes) of an ADC. In response to the problem of increasing test times, various techniques have been developed that estimate all of the CTs from a subset of CT measurements. Such techniques are described, for example, in: 117 G. N. Stenbakken and T. M. Souders, xe2x80x9cTest-Point Selection and Testability Measures via QR Factorization of Linear Models,xe2x80x9d IEEE Transactions on Instrumentation and Measurement, Vol. IM-36, No. 2. June 1987, pp 406-410 (xe2x80x9cStenbakken and Souders Ixe2x80x9d); T. M. Souders and G. N Stenbakken. xe2x80x9cA Comprehensive Approach to Modeling and Testing of Mixed-signal Devices,xe2x80x9d Proceding of IEEE International Test Conference, 1990, pp 169-176 (xe2x80x9cSouders and Stenbakkenxe2x80x9d); G. N. Stenbakken and T. M. Souders. xe2x80x9cLinear Error Modeling of Analog and Mixed-Signal Devices,xe2x80x9d Proceeding of IEEE Internationial Test Conference, 1991, pp 573-581 (xe2x80x9cStenbakken and Souders IIxe2x80x9d); G. N. Stenbakken and T. M. Souders, xe2x80x9cDeveloping Linear Error Models for Analog Devices,xe2x80x9d IEEE Transactions on Instrumentation and Measurements, Vol. 43, No. 2, April 1994, pp 157-163 (xe2x80x9cStenbakken and Souders IIIxe2x80x9d); and T. D. Lyons, The Production Implementation of a Linear Error Modeling xe2x80x9cTechnique,xe2x80x9d Proceeding of IEEE International Test Conference, 1992, pp 399-404 (xe2x80x9cLyonsxe2x80x9d).
Techniques such as those described in the aforementioned references are based on two assumptions. First, for most high resolution ADCs, the number of variables, such as the values of resistors, capacitors and transistor transconductances, which control their linearity is much less than the total number of CTs. Second, the variations in these variables is typically small so that the relationship between these variables and the corresponding CTs can be well approximated by a linear function. second order or higher order terms being negligible. Techniques for using a linear model with three different production test methods to save test time have been described in P. D. Capofreddi and B. A. Wooley, xe2x80x9cThe Use of Linear Models in A/D Converter Testing,xe2x80x9d IEEE transactions on Circuits and Systems-I: Fundamental Theory and Applications, Vol. 44, No. 12, December 1997, pp 1105-1113 (xe2x80x9cCapofreddi and Wooley Ixe2x80x9d), and P. D. Capofreddi and B. A. Wooley, xe2x80x9cThe Use of Linear Models for the Efficient and Accurate Testing of A/D Converters,xe2x80x9d Proceeding of IEEE International Test Conference, 1995, pp 54-60 (Capofreddi and Wooley IIxe2x80x9d).
INL and DNL are measures of how much the CTs of an ADC differ from ideal linear behavior. Specifically, DNL is a measure of the deviation from the ideal 1 least significant bit (xe2x80x9cLSBxe2x80x9d) of the voltage span that is associated with each output code. INL is the worst case deviation of an ADC transfer function from the line between the measured end points (zero and full scale) of the ADC. INL and DNL are usually expressed in LSBs. These measures are illustrated on FIG. 1.
DNL and INL can be expressed in terms of the CTs as:                               DNL          i                =                              (                                                            γ                  i                                -                                  γ                                      i                    ·                    1                                                                              1                ⁢                LSB                                      )                    -          1                                    (        1        )                                          INL          i                =                                            γ              i                        -                          γ              1                        -                                          (                                                      (                                                                  γ                                                                              2                            xe2x80x2xe2x80x2                                                    -                          1                                                                    -                                              γ                        1                                                              )                                    /                                      (                                                                  2                        xe2x80x2xe2x80x2                                            -                      2                                        )                                                  )                            ·                              (                                  i                  -                  1                                )                                                          1            ⁢            LSB                                              (        2        )            
where xcex3i is the ith CT,
n is the number of bits in the ADC, and
1LSB denotes the ideal voltage span of 1 LSB of the ADC.
Since INL and DNL can be easily computed with a few algebraic operations once the CTs are known, the task in determining the INL and DNL is to determine the CTs, that is, the xcex3is. INL and DNL measurements usually involve the measurement of all the CTs of an ADC. At least three different techniques can be used for the measurement of INL and DNL of ADCs, as described in S. Max, xe2x80x9cFast Accurate and Complete ADC Testing,xe2x80x9d Proceeding of IEEE International Test Conference, 1989, pp 111-117 (hereinafter xe2x80x9cS. Maxxe2x80x9d). The three techniques are (i) the servo-loop method, (ii) the ramp histogram method (tally and weight method) and (iii) the sine wave histogram method (aka code density method). The servo loop method involves the use of an analog integrator in a feedback loop and has a long test time because of the large settling time of the integrator and the long conversion time of the DC voltmeter used to measure code transitions. A fast variant of the servo-loop method using an accurate digital-to-analog converter in a feedback loop is described in S. Max, supra, but this requires a more complex interface board design for the Device-Under-Test (xe2x80x9cDUTxe2x80x9d) and a non-standard test interface. Therefore, linearity testing of most ADCs is performed using the ramp histogram technique. T. Kuyel, xe2x80x9cLinearity Testing Issues of Analog to Digital Converters,xe2x80x9d Proceeding of IEEE International Test Conference, 1999, pp 747-756. The sine wave histogram technique has a worst-case error in linearity measurements that is xcfx80 times the error of a ramp of the same test length (test time) and therefore is used only in cases where generation of a ramp with the required linearity is not possible. J. Doemberg, Hae-Seung Lee and D. A. liodges, xe2x80x9cFull-Speed Testing of A/D Converters,xe2x80x9d IEEE Journal of Solid-State Circuits, Vol. SC-19, NO. 6, December 1984, pp 820-827. The servo-loop method measures CTs one at a time, while the histogram techniques estimate all the CTs in one pass. Therefore, the histogram methods are inherently faster. In the ramp histogram method for estimating CTs, a linear ramp or triangular wave is applied to the input of the ADC and a histogram of the output codes is computed. The CTs are estimated from the histogram using       γ    i    =            V      0        +                            (                                    V              F                        -                          V              0                                )                N            ·              (                              ∑                          j              =              0                        i                    ⁢                      xe2x80x83                    ⁢                      c            i                          )            
where V0 is the initial (minimum) value of the ramp,
VF is the final (maximum) value of the ramp,
ci is the number of occurrences of code i, and
N is the total number of samples in the histogram.
The INL and DNL can also be directly computed from the histogram without the computation of the CTs. For computing the DNL using a triangular wave or linear ramp, the probability that the input voltage is within a given interval is directly proportional to the width of the interval. Consequently, the width of each code (the voltage interval of the input voltage for which the output is equal to a given code) will be proportional to the number of occurrences of the given code in the histogram. Therefore, an estimate of the DNL of the ADC is given by       DNL    i    =                    c        i                              (                                    ∑                              j                =                1                                                              2                  xe2x80x2xe2x80x2                                ⁢                                  xe2x80x83                                ⁢                2                                      ⁢                          xe2x80x83                        ⁢                          c              j                                )                /                  (                                    2              xe2x80x2xe2x80x2                        -            2                    )                      -    1  
The input waveform span is usually set to be slightly larger than the input range of the ADC to ensure occurrence of all codes. Therefore the first and last code counts are ignored in the DNL computation. The INL, for the ADC is given by       INL    i    =            ∑              j        =        1            i        ⁢          xe2x80x83        ⁢          DNL      ⁡              [        j        ]            
These equations give the same DNL and INL, respectively, as those computed by Equations 1 and 2, above.
The number of variables that control the CTs of an ADC is much less than the number of CTs. The CTs have, therefore, been modeled by a linear model. Stenbakken and Souders I; Souders and Stenbakken; Stenbakken and Souders II; Stenbakken and Souders III; Lyons; Capofreddi and Wooley I; and Capofreddi and Wooley II, supra. The model is expressed as:
{overscore (xcex3)}xe2x88x92{overscore (III)}xcex3+Axcex3xc2x7{overscore (xcex8)}
where {overscore (xcex3)} are the 2nxe2x88x921 CTs of an ADC,
m are the means (nominal values) of the CTs,
{overscore (xcex8)} is a set of scaling variables which control the variation in transition levels, and
Axcex3 is a matrix which relates the variables xcex8 to the CTs linearly.
The model can be created from a set of training data, that is, a set of measured CTs for a plurality w of ADCs. The training data can be denoted by a matrix {circumflex over (X)}=[{circumflex over (x)}ij], where 1xe2x89xa6ixe2x89xa62nxe2x88x921 represents the index for the CTs, 1xe2x89xa6jxe2x89xa6w represents the index for the ADCs, and {circumflex over (x)}ij represents the measured CTs. The mean CTs {circumflex over (m)}xcex3i are estimated using             m      ^              γ      ,      i        -            1      w        ⁢                  ∑                  j          -          1                w            ⁢              xe2x80x83            ⁢                        x          ^                          i          ,          j                    
where the matrix Axcex3 is determined using a principal value decomposition of {circumflex over (X)}.
An efficient way to do this is to subtract the mean transition level {circumflex over (m)}xcex3i from the measured transitions {circumflex over (x)}ij as xxe2x80x2ij={circumflex over (x)}ijxe2x88x92{circumflex over (m)}xcex3i, and then perform a singular value decomposition of the resulting matrix. Singular value decomposition resolves the resulting matrix Xxe2x80x2 into a product of three matrices
Xxe2x80x2=Uxcexa3VT
where U and V are orthogonal matrices, and
xcexa3 is a diagonal matrix whose entries are arranged in a decreasing order.
D. S. Watkins, xe2x80x9cFundamentals of Matrix Computations.xe2x80x9d John Wiley and Sons, 1991. The matrix Axcex3 is obtained by extracting the first p columns of U, where p is the number of diagonal elements of xcexa3 that have significant value. Stenbakken and Souders III, supra. The operation is as follows:             X      ^        =          [                                                                  x                ^                                            1                ,                1                                                                                        x                ^                                            1                ,                2                                                          ⋯                                                              x                ^                                            1                ,                w                                                                                                        x                ^                                            2                ,                1                                                                                        x                ^                                            2                ,                1                                                          ⋯                                                              x                ^                                            2                ,                w                                                                          ⋯                                ⋯                                ⋯                                ⋯                                                                              x                ^                                                                                  2                    xe2x80x2xe2x80x2                                    -                  1                                ,                1                                                                                        x                ^                                                                                  2                    xe2x80x2xe2x80x2                                    -                  1                                ,                2                                                          ⋯                                                              x                ^                                                                                  2                    xe2x80x2xe2x80x2                                    -                  1                                ,                w                                                        ]                          m        ^                    γ        ,        i              =                  1        w            ⁢                        ∑                      j            =            1                    w                ⁢                  xe2x80x83                ⁢                              x            ^                                i            ,            j                                                  X        xe2x80x2            =                        X          ^                -                  [                                                                                          m                    ^                                                        γ                    ,                    1                                                                                                                    m                    ^                                                        γ                    ,                    1                                                                              ⋯                                                                                  m                    ^                                                        γ                    ,                    1                                                                                                                                            m                    ^                                                        γ                    ,                    2                                                                                                                    m                    ^                                                        γ                    ,                    2                                                                              ⋯                                                                                  m                    ^                                                        γ                    ,                    2                                                                                                      ⋯                                            ⋯                                            ⋯                                            ⋯                                                                                                          m                    ^                                                        γ                    ,                                                                  2                        xe2x80x2xe2x80x2                                            -                      1                                                                                                                                        m                    ^                                                        γ                    ,                                                                  2                        xe2x80x2xe2x80x2                                            -                      1                                                                                                  ⋯                                                                                  m                    ^                                                        γ                    ,                                                                  2                        xe2x80x2xe2x80x2                                            -                      1                                                                                                    ]                      ⁢          
                                                              X              xe2x80x2                        =                          xe2x80x83                        ⁢                                                                                xe2x80x83                                    ⁢                                      [                                                                                                                        u                                                          1                              ,                              1                                                                                                                                                            u                                                          1                              ,                              2                                                                                                                                ⋯                                                                                                      u                                                          1                              ,                              w                                                                                                                                                                                                        u                                                          2                              ,                              1                                                                                                                                                            u                                                          2                              ,                              1                                                                                                                                ⋯                                                                                                      u                                                          2                              ,                              w                                                                                                                                                                            ⋯                                                                          ⋯                                                                          ⋯                                                                          ⋯                                                                                                                                                  u                                                                                                                            2                                  xe2x80x2xe2x80x2                                                                -                                1                                                            ,                              1                                                                                                                                                            u                                                                                                                            2                                  xe2x80x2xe2x80x2                                                                -                                1                                                            ,                              2                                                                                                                                ⋯                                                                                                      u                                                                                                                            2                                  xe2x80x2xe2x80x2                                                                -                                1                                                            ,                              w                                                                                                                                            ]                                                                    ⏟                                                            2                      xe2x80x2xe2x80x2                                        -                                          1                      xc3x97                      w                                                                                  ·                                                                                      xe2x80x83                        ⁢                                          [                                                                                                    v                                                  1                          ,                          1                                                                                                                                    v                                                  1                          ,                          2                                                                                                            ⋯                                                                                      v                                                  1                          ,                          w                                                                                                                                                                        v                                                  2                          ,                          1                                                                                                                                    v                                                  2                          ,                          1                                                                                                            ⋯                                                                                      v                                                  2                          ,                          w                                                                                                                                                ⋯                                                              ⋯                                                              ⋯                                                              ⋯                                                                                                                          v                                                  w                          ,                          1                                                                                                                                    v                                                  w                          ,                          2                                                                                                            ⋯                                                                                      v                                                  w                          ,                          w                                                                                                                    ]                                            ⏟                                  w                  xc3x97                  w                                                                          ⁢                            [                                                                      ∑                  1                                                            0                                                              0                  ⁢                                      xe2x80x83                                    ⁢                  …                                                            0                                            0                                                                    0                                                              ∑                  2                                                            ⋯                                            0                                            0                                                                    ⋯                                            ⋯                                                              ∑                                      n                    p                                                                              0                                            0                                                                    0                                            0                                            0                                            ϵ                                            0                                                                    0                                            0                                            0                                            0                                            ϵ                                              ]                          ⏟                      w            xc3x97            w                              ·      
The resulting Axcex3 matrix has orthonormal columns, that is,                     A        _                    γ        i            T        ·                  A        _                    γ        i              =      (                            0                                      i            ≠            j                                                1                                      i            =            j                              
where {overscore (A)}xcex3i is the i-th column of Axcex3
Given Axcex3, the variables {overscore (xcex8)} can be estimated using
{overscore ({circumflex over (xcex8)})}=(Axcex3TAxcex3)xe2x88x921Axcex3Txc2x7({overscore (xcex3)}xe2x88x92{overscore (m)}xcex3)xe2x80x83xe2x80x83(3)
The variables {overscore (xcex8)} of an empirical model derived in this manner have no physical significance; for example, they cannot be associated with the value of a single capacitor or resistor within the ADC. An estimate of the standard deviation of the scaling variables xcex8i is given by             σ      ^                      θ        ⁢                  xe2x80x83                ⁢        i            ⁢              xe2x80x83              =            s      i                      w        -        1            
where si is the ith diagonal element of the matrix xcexa3 (ith singular value).
The variables {overscore (xcex8)} may be estimated from a subset of all the CTs, Stenbakken and Souders I; Souders and Stenbakken; Stenbakken and Souders II; Stenbakken and Souders III; and Lyons, supra, to compute all the CTs from Equation 3. However, to measure a subset of the CTs the servo-loop technique has to be used, and this technique is not widely used in industry because of its long test time.
A technique for improving the accuracy of INL and DNL estimates based on a histogram of CTs is disclosed in Capofreddi and Wooley I and Capofreddi and Wooley II, supra. The technique involves the following steps: A coarse (noisy) estimate of the CTs of an individual ADC is obtained using a ramp with a reduced number of samples (ramp with reduced test time). The scaling variables that control the CTs of the ADC are estimated using
{overscore ({circumflex over (xcex8)})}=(Axcex3TAxcex3)xe2x88x921Axcex3Txc2x7({overscore ({circumflex over (xcex3)})}xe2x88x92{overscore ({circumflex over (m)})}xcex3)=Axcex3Txc2x7({circumflex over ({overscore (xcex3)})}xe2x88x92{circumflex over ({overscore (m)})}xcex3)
where {overscore ({circumflex over (xcex3)})} are the (coarse) estimates of CTs computed from the histogram; and
Axcex3 is the linear model matrix.
The CTs are then computed from the {overscore (xcex8)} using Equation 3. This method gives a reduction in the standard deviation of the measurement noise in CT estimates by a factor of approximately [p/2n]xc2xd. This reduction in noise occurs because the linear modeling technique reduces the 2nxe2x88x921 CTs to p variables, and this has an inherent averaging effect on the measurement noise.
Although the latter estimation technique improves upon the accuracy in determining the CTs, it still requires considerable time to obtain satisfactory accuracy. Therefore, there is a need for an improved method and system for computing the scaling variables, and thereby estimating the CTs, for an ADC after production that reduces the amount of time required while maintaining the desired accuracy.
It has been found that, if the variance of measurement errors in {overscore (xcex3)} obtained from a histogram can be estimated, and the variance of the variables {overscore (xcex8)} are known, more accurate estimates of the variables {overscore (xcex8)} can be made than has heretofore been recognized. From these optimal estimates for {overscore (xcex8)}, an improved estimate of {overscore (xcex3)} can be made, resulting in reduced test time required in comparison to the servo-loop and prior histogram methods.
The method of the present invention comprises a model building phase and a production test strategy. During the model-building phase, a linear model of an ADC is constructed from a set of accurately measured CTs for a set of training ADCs. The average input-referred noise for the training ADCs is also measured from the set of ADCs. Based on the measured CTs and the measured noise. the standard deviation "sgr"xcex8 of the {overscore (xcex8)}, the standard deviation "sgr"excex3 of the error in {overscore (xcex3)} and the variance in {overscore (xcex3)} due to noise are computed.
A minimal test length N, that is, the duration of the ramp input from its initial value VO to its final value VF, is selected that will give the required accuracy in the CT estimates. During a production test of an individual ADC, a ramp of the selected test length is applied to the individual ADC, a histogram of codes is produced, and the CTs for the individual ADC are estimated from the resulting histogram. Then, using the parameters computed during the training phase, that is, ("sgr"xcex8, "sgr"excex3 and Axcex3, an optimal estimate for the CTs is made. INL, and DNL, as well as other characteristics, may then be computed for the individual ADC.
Therefore, it is a principal object of the present invention to provide a novel and improved method and system for making optimal estimates of linearity metrics of analog-to-digital converters.
It is another object of the present invention to provide a novel and improved method and system for production testing of the linearity metrics of analog-to-digital converters.
It is a further object of the present invention to provide a method and system for rapidly estimating linearity metrics of an individual analog-to-digital converter based on a histogram of transition code voltages and a statistical model constructed from a training set of like analog-to-digital converters.
It is yet another object of the present invention to provide a method and system for estimating linearity metrics of an analog-to-digital converter with increased accuracy by employing a least squares estimate based on the variance of errors in measurements of the transition code voltages.
The foregoing and other objects, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention, taken in conjunction with the accompanying drawings.